package com.chinaoct.siku.LocalStorage.util;

import lombok.extern.slf4j.Slf4j;
import net.coobird.thumbnailator.Thumbnails;

import java.io.IOException;

@Slf4j
public class PicUtils {

    private final static Integer WEIGHT = 750;
    private final static Integer HEIGHT = 1334;
    private final static Integer MAX_HEIGHT =  1024*1024;
    /**
     * 指定大小进行缩放
     * @param srcUrl 源图片地址
     * @param targetUrl 目标图片地址
     * @param width 宽
     * @param height 高
     * @throws IOException
     */
    public static void resize(String srcUrl,String targetUrl,int width,int height) throws IOException {
        /*
         * size(200,300) 若图片横比200小，高比300小，不变
         * 若图片横比200小，高比300大，高缩小到300，图片比例不变 若图片横比200大，高比300小，横缩小到200，图片比例不变
         * 若图片横比200大，高比300大，图片按比例缩小，横为200或高为300
         */
        Thumbnails.of(srcUrl).size(width, height).toFile(targetUrl);
    }

    /**
     * 图片按宽375进行压缩
     * @param srcUrl 源图片地址
     * @param targetUrl 目标图片地址
     * @throws IOException
     */
    public static void resize(String srcUrl,String targetUrl) throws IOException {
        Thumbnails.of(srcUrl).size(WEIGHT, MAX_HEIGHT).toFile(targetUrl);
    }




    /**
     * 按照比例进行缩放
     * @param srcUrl 源图片地址
     * @param targetUrl 目标图片地址
     * @param num 质量比例如 0.8
     * @throws IOException
     */
    public static void scale(String srcUrl,String targetUrl,double num) throws IOException {
        Thumbnails.of(srcUrl).scale(num).toFile(targetUrl );
    }
}
